library(Seurat)
library(cowplot)
library(dplyr)
Attaching package: ‘dplyr’
The following objects are masked from ‘package:stats’:
filter, lag
The following objects are masked from ‘package:base’:
intersect, setdiff, setequal, union
library(tidyr)

What do the clusters represent?
plot_featuresplots <- function(df, features){
plots <- FeaturePlot(df, features=features, combine = FALSE, pt.size=1)
for(i in 1:length(plots)) {
plots[[i]] <- plots[[i]] + NoAxes()
}
plot_grid(plotlist=plots, ncol=2)
}
plot_featureplots(wolfrum, features=pos_markers_top20[pos_markers_top20$cluster == 0]$gene)
plot_grid(plotlist=plots, ncol=3)

plot_grid(plotlist=plots, ncol=3)
LS0tCnRpdGxlOiAiUiBOb3RlYm9vayIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKCmBgYHtyfQpsaWJyYXJ5KFNldXJhdCkKbGlicmFyeShjb3dwbG90KQpsaWJyYXJ5KGRwbHlyKQpsaWJyYXJ5KHRpZHlyKQpgYGAKCmBgYHtyfQp3b2xmcnVtIDwtIHJlYWRSRFMoJy9wcm9qZWN0cy90aW1zaGVsL3NjLXNjaGVlbGVfbGFiX2FkaXBvc2VfZmx1aWRpZ21fYzEvZGF0YS13b2xmcnVtL3dvbGZydW0uY29tcHV0ZS5zZXVyYXRfb2JqLnJkcycpCmBgYAoKYGBge3IgZmlnLmhlaWdodCA9IDUsIGZpZy53aWR0aCA9IDEyLCBmaWcuYWxpZ24gPSAiY2VudGVyIn0KcGxvdF9ncmlkKAogIFVNQVBQbG90KHdvbGZydW0sIGdyb3VwLmJ5PSdvcmlnLmlkZW50JywgbGFiZWw9VCksCiAgVU1BUFBsb3Qod29sZnJ1bSwgZ3JvdXAuYnk9J3NldXJhdF9jbHVzdGVycycsIGxhYmVsPVQpCikKYGBgCgpXaGF0IGRvIHRoZSBjbHVzdGVycyByZXByZXNlbnQ/CgpgYGB7cn0KbWFya2VycyA8LSByZWFkLnRhYmxlKCcvcHJvamVjdHMvcHl0cmlrL3NjX2FkaXBvc2UvYW5hbHl6ZV8xMHhfZmx1aWRpZ20vMTB4LWFkaXBvY3l0ZS1hbmFseXNpcy9vdXRwdXQvbWFya2VyZ2VuZXMvd29sZnJ1bS9tYXJrZXJzX3dvbGZydW0uY29tcHV0ZS5zZXVyYXRfb2JqLnJkc19zZXVyYXRfY2x1c3RlcnNfbmVnYmlub20nLCBzZXA9J1x0JywgaGVhZGVyPVQpCmBgYAoKYGBge3J9CnBvc19tYXJrZXJzX3RvcDEwIDwtIG1hcmtlcnMgJT4lIAogIGdyb3VwX2J5KGNsdXN0ZXIpICU+JSAKICB0b3BfbihuPTEwLCB3dD1hdmdfbG9nRkMpIAogICN1bml0ZShjb2w9J2NsdXN0ZXJfZ2VuZScsIGMoY2x1c3RlciwgZ2VuZSksIHJlbW92ZT1GKQogIApuZWdfbWFya2Vyc190b3AxMCA8LSBtYXJrZXJzICU+JSAKICBncm91cF9ieShjbHVzdGVyKSAlPiUgCiAgdG9wX24obj0xMCwgd3Q9ZGVzYyhhdmdfbG9nRkMpKQoKcG9zX21hcmtlcnNfdG9wMTAKYGBgCgoKCgoKCgpgYGB7cn0KcGxvdF9mZWF0dXJlc3Bsb3RzIDwtIGZ1bmN0aW9uKGRmLCBmZWF0dXJlcyl7CiAgcGxvdHMgPC0gRmVhdHVyZVBsb3QoZGYsIGZlYXR1cmVzPWZlYXR1cmVzLCBjb21iaW5lID0gRkFMU0UsIHB0LnNpemU9MSkKICBmb3IoaSBpbiAxOmxlbmd0aChwbG90cykpIHsKICAgIHBsb3RzW1tpXV0gPC0gcGxvdHNbW2ldXSArIE5vQXhlcygpCiAgfQogIHBsb3RfZ3JpZChwbG90bGlzdD1wbG90cywgbmNvbD0yKQp9CmBgYAoKYGBge3IgZmlnLmhlaWdodCA9IDEwLCBmaWcud2lkdGggPSAxMCwgZmlnLmFsaWduID0gImNlbnRlciJ9CnBsb3RfZmVhdHVyZXBsb3RzKHdvbGZydW0sIGZlYXR1cmVzPXBvc19tYXJrZXJzX3RvcDIwW3Bvc19tYXJrZXJzX3RvcDIwJGNsdXN0ZXIgPT0gMF0kZ2VuZSkKYGBgCgoKYGBge3IsIGZpZy5zaG93PSdoaWRlJywgcmVzdWx0cz0naGlkZScsIG1lc3NhZ2U9Rn0KCmBgYAoKYGBge3IsIGZpZy5oZWlnaHQgPSAxMTIsIGZpZy53aWR0aCA9IDEwLCBmaWcuYWxpZ24gPSAiY2VudGVyIn0KI2hlaWdodCAxIHJvdyA9IDMuIAojMjcgY2x1c3RlcnMuIDI3KjEwPTI3MCBwbG90cy4gaGVpZ2h0PTI3MCozPTgxMApwbG90X2dyaWQocGxvdGxpc3Q9cGxvdHMsIG5jb2w9MykKYGBgCgpgYGB7ciwgZmlnLnNob3c9J2hpZGUnLCByZXN1bHRzPSdoaWRlJywgbWVzc2FnZT1GfQpwbG90cyA8LSBGZWF0dXJlUGxvdCh3b2xmcnVtLCBmZWF0dXJlcz1hcy52ZWN0b3IobmVnX21hcmtlcnNfdG9wMjAkZ2VuZSksIGNvbWJpbmUgPSBGQUxTRSwgcHQuc2l6ZT0xKQoKZm9yKGkgaW4gMTpsZW5ndGgocGxvdHMpKSB7CiAgcGxvdHNbW2ldXSA8LSBwbG90c1tbaV1dICsgZ2d0aXRsZShuZWdfbWFya2Vyc190b3AyMCRjbHVzdGVyX2dlbmVbaV0pICsgTm9BeGVzKCkKfQpgYGAKCgpgYGB7ciwgZmlnLmhlaWdodCA9IDExMiwgZmlnLndpZHRoID0gMTAsIGZpZy5hbGlnbiA9ICJjZW50ZXIifQpwbG90X2dyaWQocGxvdGxpc3Q9cGxvdHMsIG5jb2w9MykKYGBgCgoK